16
https://raw.githubusercontent.com/wmm1996528/unidbg_douyin10/master/src/test/java/com/github/unidbg/android/AndroidRelocationTest.java
package com.github.unidbg.android;

import com.github.unidbg.arm.ARMEmulator;
import junit.framework.TestCase;
import net.fornwall.jelf.AndroidRelocationIterator;
import net.fornwall.jelf.ElfFile;
import net.fornwall.jelf.ElfRelocation;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class AndroidRelocationTest extends TestCase {

    private static final Log log = LogFactory.getLog(AndroidRelocationTest.class);

    public void test64() throws Exception {
        byte[] data = Hex.decodeHex("FA10E8F43B030B08830890C20FB4099FAF20FE000B1083082BF5002787E100C977B9080202020204E0B97FA443FA820104020202C2B67FC0C90002020202CDB67FB5C900BBF87EC78701060A0B81B77F88C9000A99B97FF1C600100BB803DA7C06D804B67BBD7FCF00060CC404CD7B050A05AAFC7EE083010D89B77F89C90007C7EB7EC69401EF02D3FB7EC081010B1311140FEDFB7EE53AB7C9000805F301997EE6B37F9ECC000D070A020E86B67F89CA00100C1412EEE97EA796010A06917C9003FA7CCBF77ED08C014E06069F01E57E98B57FF3CA000E92F77EFB8401DAB57FA6CE000205060606D9004C61060606DEE87ED29201D604CEF67EB88901E3720E0B0883083C3ACD00342D2D2D3ED600D5003CDC00F8002DE701098308E803E6EE69080408240804205408300878080408EC02D00DE87C08D4000854080408F80238DC7C08F80008B07F080408800330D47C089C01088C7F080408880330CC7C08C00108E87E080408940308D01B08C07908C06C18F07A08E40108C47E080408940308B01A08907808F86F38887A08880208A07E080408940308B41608C07508BC7738907908AC0208FC7D080408900918C47608D00208D87D080408B00918A47608F40208B47D08040890098008D4C00308CC00C000F48F1E10E0F06108D857200C10EC911208B0920DF00BE09F7F108CDA6408B876200C1090860F08C0890D1080A17F1090E864083438800108080808288CEC0E18C0AB0C1098EE64083420D40030D401088C011880E30E18A0AC0C10C8F36408343880010808080828F4DE0E18A0AD0C10D0F964083420D40030D401088C0118C8D50EA00194B4710804F800ECDF000804F800E4F2000804E000ACC4000804E000C8C6000804A001E0350804A001CC3508980310A00338D40708100810081008100810081018A87F08100810081008100810081018E00908980310A00338D40708100810081008100810081018A87F08100810081008100810081018F00408CC0128D40B082828800408282830082828300804E80088010804E80088010804E80088010804E800E80508D400E800940608D400E8008C0A08D400E8008C0A08D400E800B401080430B83B080430903A0804308022080430B4220804383C0804383C080438240804B003BCC51508B0C46B08B401A011E8E202C00124800124800124800124800124800124800124800124800124800124800124F800C89F058814D0C90C10B49D6ED800FCAF0518F0B30C10B89C6EF800F8AF05900DE01418E0AC0C10C89E7108AC65200C10C0CF0208E0AB0C10C00110EC9D7108946808900218FC7D1084CD0208B0AB0CB826802D800588905208A80208E2F91F030181828080E09401C8C57EA001200100E8AE0181888080E09401030181828080D018E0CF7E28280A00F0B30181888080D018C8CB7E81828080A096020881828080A09601108182808090E301D8B2018188808090E301B8CD7E81828080B0260881828080A082021081828080F08C021081828080D0C2000881828080F02DDC000D8182808090DE00100820208001202020209001F00DD000D000C001F000C001900120C000C000C000C00020C000C000A00120C001D000E000D0073020A004A001A001A001A001E021C006800180018001C001800180018001800180018001800180018001800180012020202020E0002020202020E005E000F00120B002202020F00320202020208001A001E001C000C000D004F000F000C002900130E000E000010098F27E81828080C0F800080181828080C0950108D000F000A016A002C00220A0E4000300A03181888080C09501F8CD7E81828080D01F2081828080909D02020181828080C0FB0020380200508182808080EB000881828080A014180D81828080A0BE011008A81B900130D009D00010F82BA801F016F001F00110E000E000D001D0019003D000D000D000D0009805B80C0700F0F47E8182808090F900108182808090FE00B0B6018188808090FE00E0C97E81828080C0A1020881828080B08B011881828080B09C012081828080B0FD0002018182808080C00008A01A0100F8658182808080C200070181828080E01C0820308001F00DD000D0000300B89D0181888080E01C80D27E8182808080C1002081828080F0E300030181828080C0E10008E012B0010A0181828080A0C901A86C901A080808A8E2003810880B200200D0F77E81828080F0EA00C00081828080F0CD00150D81828080D0D4011010D800D000D000D000D000D000D000D000D000D000D000D000D000D000D000D000D000D000D000D0000100C07381828080C0FD012A0D81828080901E101020302030203020302030203020302030203020302030203020302030203020302030203020302030200100A87381828080D0DC0002018182808080D30110200400B0AD018188808080D301C0D27E8182808080BF01208182808090281081828080C09C01020181828080C0E60110200400E0AB0181888080C0E60190D47E81828080C0B9012081828080F0F8011081828080E0D800020181828080E0CF0110200300708182808080BB012081828080E0FD01108182808090DD00020181828080B0D301102003007081828080A0BF01208182808090F901108182808090D90002018182808090D001102003007081828080D0BB012081828080F0FA011081828080B0DA0002018182808080D101102003007081828080D0BC012081828080C0F8011081828080C0D800020181828080D0CF01102003007081828080F0BA01208182808090FD01108182808090DC00020181828080E0D201102003007081828080D0BE012081828080B0FD011081828080A0DC00020181828080F0D201102003007081828080E0BE012081828080E0FB011081828080F0DA00020181828080B0D101102003007081828080F0BC01208182808090FC01108182808090DB00020181828080D0D10110200300708182808090BD012081828080B0FC011081828080B0DB00020181828080F0D101102003007081828080B0BD012081828080C0FC011081828080E0DB0002018182808080D201102003007081828080D0BD012081828080F0FD011081828080A0DD00020181828080C0D301102003007081828080C0BF01208182808090FE011081828080B0DD00020181828080D0D301102003007081828080F0BF012081828080A0271081828080B09B0102018182808080E60110200300708182808080B8012081828080A0FA011081828080F0D900020181828080D0D001102003007081828080A0BC012081828080B0F9011081828080A0D900020181828080A0D001102003007081828080E0BB01208182808080FA011081828080E0D900020181828080C0D00110200300708182808090BC012081828080C0281081828080809D0102018182808080E701102003007081828080A0BA012081828080B0271081828080E09B0102018182808090E601102007007081828080B0B8012081828080E0D300C00081828080E034188182808090353881828080B0D9011881828080D0B9013881828080C09A02030181828080A0E40118B001F0000900B89B0181888080A0E401F8E27E81828080F026D80081828080D0C901188182808080D601D80081828080C0E400D00081828080E03B90A20181888080E03BA8DE7E81828080E08F01388182808090A002070181828080C0F10018A001C000C000C000E004A0E300050181828080C08801A8957FD000E000C000C0000100D87D81828080A0F80007018182808090AB0108D000E000C000C000E004A0E300060181828080C08C02E0957F9803C000C000E0E600800A0100982781888080C08C02040181828080B08702F8E37EC802E000C0000100A07C8182808080F401070181828080B0F90008C802E000C000E00B80DB00F8093C00D08B7F8182808080221081828080A0B5011881828080F0C4012081828080F09F011881828080E0930280A10181888080E0930290DF7E81828080E0F2011881828080C0151881828080E09602F89B0181888080E0960298E47E8182808090E7001881828080D095021881828080D0E100A8960181888080D0E100E8E97E81828080B0171881828080C0E0001881828080B08F011081828080E0C3011881828080B0A701208182808080E401188182808080940298950181888080809402F8EA7E8182808080271881828080D0131881828080F0381081828080E027188182808080C400188182808080D400A89A018188808080D400E0E57E81828080D0250881828080B016088182808090A1011081828080D03BE8980181888080D03BA0E77E818280808096010881828080A088010881828080D0D601188182808090E7010881828080E0D9011081828080E0201881828080D0DF012081828080A0D7001881828080D0CE000881828080801E0881828080809F023081828080B0F0001081828080A0B00108818280808024088182808080151081828080C0C301108182808080DC008896018188808080DC0080EA7E81828080E0CE00B0900181888080E0CE00D8EF7E81828080E03E1881828080F0211881828080808C021881828080909002088182808080E4001881828080E0A001040181828080D0F700088034C02C8801050181828080E08A02D09E7FC00CC0DF00C001E0000100D82B81888080E08A0204018182808090CF01A0E67EC00CC0DF00C001050181828080D0D500C8927FC00CC0DF00C001E000050181828080E02DE8917FC00CC0DF00C001E000030181828080D0D30090927FD808E0000200D07681828080A08902088182808090F701030181828080F0900210E808E0000200C07681828080C0B2010881828080B09F01040181828080E0C60010900DA00180D80003018182808090F600D8997F800CA0010100E87281828080F0E200020181828080A08E0108F0E100040181828080F031989E7F800CA001D0D400030181828080C0CB01989E7F800CA001030181828080D09302E872800CA00103018182808080FD00E872800CF0D500040181828080E0BA01989E7F800CA001D0D400040181828080F09901989E7F800CA001D0D400020181828080D09602989E7FA00D030181828080C0BB01E872A00DD0D400020181828080A0CF00989E7FA00D030181828080E0D600E872800CF0D500020181828080E09C01989E7F800C0301818280808087029074D00EA001030181828080E01D9870C00DA0010200A87181828080B09F020881828080B09802030181828080D0F40008C00DA001030181828080F0DB01A871C00DA001030181828080D0AF01A871C00DA001020181828080F03DA871C00D030181828080F08E01C872C00DA001030181828080E0DE01A871C00DA001020181828080D0EC01A871E00E020181828080B0A101A871E00E020181828080C026A871E00E020181828080808501A871C00D020181828080E08701C872C00D0A0181828080D0E201D87228A007288001D8DB002828900228040181828080A0C800B8987FC80780DD00E002040181828080F0CE01E0987FC80780DD00E00204018182808090B901F8987FC80780DD00E002040181828080B028E0987FC80780DD00E002020981828080902CE0987F1808280100A0940181888080902C020181828080D08C02F8EB7E2804006081828080A088020881828080B0F6002081828080E0E2000881828080F0E401020B0881828080C0E70118280100A0950181888080C0E7010A018182808090DF00F8EA7E28B00628C000B8DC002828F0012804018182808090C001A8997FD806A0DD00C002040181828080D02DD0997FD806A0DD00C002040181828080F0AA01E8997FD806A0DD00C002040181828080B01CD0997FD806A0DD00C002020981828080F03AD0997F1808280100A08D0181888080F03A020181828080A09B02F8F27E280400608182808090E9000881828080D0E801208182808080D6000881828080A0DB01020B0881828080A0F70118280100F8910181888080A0F701070181828080A09E02A0EE7E2828D8E2002828D001020181828080E039C09A7FA8E30002018182808090BA01E09C7FA8E300020181828080E0D101F89C7FA8E300020181828080803CE09C7FA8E300020181828080E0EE01F89C7FA8E300020181828080C0DD00E09C7FA8E300030981828080A09502E09C7F1828D00008580100A8920181888080A09502020981828080F0EE00B0ED7E1808280100B88E0181888080F0EE00020981828080C0DC01D0F17E18082805002081828080C0B301A88B0181888080C0B301E0F47E81828080F0FA00D08B0181888080F0FA00B8F47E8182808080EA00030181828080F02A18D800200300907F818280809082020881828080B0ED011081828080B08101020181828080C0C70108A8E4000600982681888080C0C701D0F57E8182808080C8001881828080B0E4012081828080C08C011881828080F0C1001081828080E08102240D818280809088021010303030D0019029B001A001A001A005800D900230C00030D00030C00030E000E0008001E000D000C0009001C000C000C000D001D000D000D000D000C0009005050088A87F81828080A0F4013081828080F09C013081828080E086023081828080C01CD00181828080B09302020181828080C082019806B0380200D84781828080C085020881828080E0F001C4000181828080F0DE0008C000C00080018001E800E800A801A801E001E00130303030F000F000F000F000F000F000F000F00038383838C000C000C000C000E000E000E000E00028C000C000E800E8008801E000D000D000D000D000C000D001B001A001A0018001800180018001C001800180018001800180018001800180018001800190158001020098B37F81828080D0DA0108818280808038020181828080801908A81A020181828080C018E865B0380400D8478182808090CB010881828080F0B6011081828080E09002088182808090810202018182808090AF0108A81A2A00E86581828080F09E02208182808090C5010881828080A0C701088182808090C9010881828080B0C8010881828080E0A3010881828080B0C7010881828080C0C901088182808090C6010881828080D0C501088182808080C6010881828080F082011081828080D0DB00208182808080800108818280809081010881828080F083010881828080A083010881828080809D020881828080D081010881828080C084010881828080E080010881828080B080010881828080D080010881828080C0F901108182808080DA002081828080D02C0881828080B02E0881828080D02F0881828080C02E088182808080300881828080802D0881828080A02D0881828080909C021081828080A0A7012081828080B0CF00088182808090D1000881828080C0D2000881828080A0D1000881828080E0D2000881828080E0CF00088182808080D000088182808080ED00030181828080902F10E000C83B0100F84381828080A0C80102018182808080880108D002020181828080F0D001B87DD002020181828080C0C100B87DD002020181828080F0EE01B87DD002020181828080809502B87DD002020181828080D0CB00B87DD0020700C87D81828080B0DF000881828080C01A088182808080FB010881828080B0D7000881828080B0CA00088182808080FE000881828080908601030181828080D0FC0010E000803B0100C04481828080E0C10102018182808090EC01088803020181828080C09F01807D8803020181828080E0CC00807D8803020181828080E0D100807D8803020181828080F0E901807D8803020181828080B015807D88030700907D81828080A0E1010881828080C0EB010881828080E0F901088182808080E300088182808090D7000881828080C08A010881828080C0900102018182808090DB01109801020181828080F0A201C800980102018182808080FC00C800C038020181828080B0C500E047E000020181828080F0C800B07FB03802018182808090CC01F047E0000200B07F81828080C09D013081828080F0EC01020181828080F03230D0390900D04681828080C0DB01088182808090FC000881828080F0170881828080F0F3000881828080B0FB00088182808090ED010881828080B085020881828080A091020881828080D0830102018182808090BE011080390900A04781828080F0CA010881828080C0EB000881828080F0CF010881828080B0350881828080A0EA000881828080D0DE0108818280808034088182808080390881828080F0BD01020181828080E0C20010B0380900F04781828080F0F7000881828080D01B088182808090380881828080A0F3000881828080F097010881828080908C010881828080F0F1000881828080D0A9010881828080F01D020181828080D0D20110E0373D00C0488182808090E6000881828080B09B020881828080C0EC010881828080F0B5010881828080808A010881828080A0FF010881828080F0B4010881828080B0E601088182808080D7001081828080E0DB012081828080B0C3010881828080A0E5000881828080B091020881828080D0A0020881828080B0E5010881828080F0C3000881828080909D010881828080A0DE010881828080D0CC001081828080C0CF002081828080C01E0881828080F0D200088182808090B601088182808090E4010881828080B0D8010881828080A0340881828080F0E2010881828080F094020881828080D08801108182808090E9012081828080B0E1010881828080B094020881828080A0200881828080909F020881828080D084010881828080D0F6010881828080F09D020881828080B0F800088182808080FE011081828080A0E1002081828080F0D3010881828080A0F5000881828080C0DA010881828080F0CF00088182808090F4000881828080D0E5010881828080C0CE000881828080A0B1010881828080B0231081828080F08E02208182808080DE000881828080E091011081828080C0C9002081828080E0D8010881828080802F1081828080D0C8002081828080C0C5010881828080C0E3001081828080E096012081828080E089020881828080A08602020181828080A09D0110C035020181828080B0BE01E04A8001020181828080D026887F8001020181828080E0B301887F8001020181828080A033907FA035020181828080808E01804B8001020181828080B0CB00887F8001020181828080B0F500887F80010500907F81828080C0CA01C0008182808080DB00C00081828080B0220881828080C093020881828080B0860202018182808090830210B00C020181828080D0CD01D873B00C020181828080908E02D873B00C020181828080F08F02D873B00C020181828080F016D873B00C020181828080808D01D873B00C02018182808080EB01D873B00C0300E0738182808080BE0108818280808081010881828080A0F200020181828080F08A0110A006020181828080E0BC01E879A006020181828080D08802E879A006020181828080903FE879A00602018182808090C400E879A00602018182808080C101E879A006020181828080B0D300E879A0060300F07981828080E0290881828080F0230881828080F014040181828080E0F70110A00CC0028002040181828080F0A301A86FA00CC0028002040181828080908F02A86FA00CC0028002040181828080F0F201A86FA00CC0028002040181828080D01DA86FA00CC0028002040181828080802AA86FA00CC0028002040181828080A0FD00A86FA00CC00280020300B06F8182808080E5000881828080D0240881828080F015040181828080E0F30010E00CA0028002040181828080A09101886FE00CA0028002040181828080E0CC01886FE00CA002800204018182808090C700886FE00CA002800204018182808090D301886FE00CA002800204018182808080E301886FE00CA002800204018182808090CD01886FE00CA00280020A00B86F81828080D0A5010881828080C0CE01088182808080B901108182808080F9000881828080C0CC011881828080A03D0881828080E0A0020881828080C09002108182808080B2010881828080E0FC00020181828080F0800218A81E0600E06181828080F035088182808080261081828080F0EB000881828080E08C020881828080903B0881828080A0D401030181828080B08C0108E800E02F0301818280808032C04FE800E02F030181828080F0A401C04FE800E02F030181828080C08901C04FE800E02F02018182808080B301C84FD030020181828080D0D900B84FE02F0100A8508182808080C900020181828080F0D80010E02F020181828080A0FD01A850E02F020181828080F0A701A850E02F020181828080F03CA850E02F020181828080E0C400D0508831020181828080B01F804FF82F0100905081828080E0A102020181828080B01310F82F02018182808090EF009050F82F020181828080C0CF019050F82F020181828080F0E3019050F82F02018182808080F4009050F82F020181828080D01E9050F82F020181828080E0C4019050F82F020181828080B0F4019050F82F020181828080A0EE019050F82F020181828080D03C9050F82F020181828080E0F9009050F82F020181828080D0ED009050F82F060181828080D0F0009850D00E800380018005D015050181828080A0CB01E852A00DC003800180050100A86981828080D0B601020181828080F0DF00D000F01B0201818280808089019864A0010100E87E81828080E0F800020181828080F09A0110A001020181828080C0D601E87EA001020181828080F09C02E87EA001020181828080E08B01E87EA001020181828080D0F001E87EA001020181828080808902F07EC01B02018182808090E001C864A0010100E87E81828080A0D201020181828080F0F50010A001020181828080E0A601E87EA001020181828080B09A02E87EA001020181828080F08B02E87EA001020181828080C0AE01E87EA0010400F07E81828080C0D8011081828080908902C00081828080A0E9001081828080B0D001070181828080B0A001C000E801B001A001A001A005D80B030181828080B0A00120C000C800140181828080B0A001F80020A801F0008001F000E000E000B002C0009001C000C000C000D001D000D000D000D000C000110181828080808802A057C000D001B001A001A001800180018001C00280018003800180018001800280010200C86A81828080D0F4011881828080B0C400020181828080F090011890180F00806881828080F0FE01108182808080D9000881828080E03F0881828080C0D4010881828080B08C020881828080B084010881828080B0310881828080D0D1000881828080B088020881828080D0E001088182808090CD000881828080D0B7010881828080B0F300108182808080A0011081828080C0B101020181828080809202209016020181828080A0E701886AD0270300C05881828080C038D00081828080C0A201188182808090D50104018182808080CE0020A001A001A005080181828080B09901B878B0038002C003800480018005F0130200B05981828080A0C301D80081828080E0EC0108018182808080DB013890038002C0038005800180029015880100B05A81828080C0C401D80081828080F0183881828080A08F021081828080A0A901D80081828080F0ED011881828080B0C9001081828080B08202D80081828080D02B188182808090A7011081828080F0A101D80081828080F08502188182808090FB011081828080D0F901D80081828080803F1881828080C0C6002081828080A0D6000881828080E0350881828080F0C20008818280809095010881828080D0CA010881828080E0CE010881828080B0BB011881828080C0D700C00081828080F0F1011881828080D031208182808090D0000881828080E0830108818280808037088182808080330881828080A0150881828080B0D2010881828080A0EA011881828080F0DF011881828080C0EE012081828080B0140881828080A090010881828080B0EE010881828080F033088182808090F100088182808080E5010881828080C0DE011881828080908B011881828080E0E501208182808080230881828080B0CA010881828080908002088182808090C2000881828080B0A801088182808080350881828080C0A1011881828080D0B5011881828080C0DC002081828080C0D0000881828080D03A0881828080F0E5010881828080A0FB0108818280809097010881828080B0C5010881828080A0E0011881828080A02E1881828080D0302081828080B0B7010881828080F0C3010881828080E0E3000881828080A0B8010881828080E08F020881828080E0FB00088182808080201881828080F0A1021881828080F0B901208182808080E2000881828080D0F1000881828080F0CA000881828080B0DC000881828080C081020881828080D08901088182808090DD011881828080F096011881828080E0AF012081828080A0B401088182808080AB010881828080F01E0881828080A0A5010881828080F02E0881828080A023088182808080DE011881828080F08F011881828080F028208182808080EE010881828080C0DD0108818280809098020881828080A0CA000881828080801D0881828080D0B0010881828080E094021881828080909902188182808080D8002081828080C0B0010881828080D0150881828080A0260881828080A0D20008818280809088010881828080C096020881828080E02F1881828080F039188182808080DA012081828080E09B020881828080D0FF010881828080D0B3010881828080E0C2010881828080B0EC0108818280808016088182808090C3001881828080E0AC011881828080B0192081828080E0C700088182808090EE010881828080808B01088182808080C2010881828080C0120881828080D08F02088182808080D1001881828080808502C00081828080C08E012081828080A0C0002081828080F024208182808090E8012081828080A09C02C00081828080F080012081828080A0172081828080C0F2002081828080F095022081828080F0F00020818280809095021881828080C03F1881828080D09202020181828080A0820110F0000700B07F81828080C0DA002081828080B0E0012081828080C0A4013081828080D0A701208182808090F5001881828080B0A2011881828080A0E60102018182808080D50010F0000800B07F81828080F029208182808090312081828080D0FA003081828080F0F9002081828080E0DA011881828080B0F6011081828080D097011881828080C0E101020181828080C0E80120E0000600B07F81828080C0BA011881828080B0301881828080B01D308182808090CE00188182808080BA011881828080F03E020181828080B0A60108E0000700B87F81828080E0CA002081828080F082022081828080E0E6012081828080A09A012081828080D092011881828080A0C4011881828080F01C02018182808090B20120C00005006081828080D08002C000818280808093012081828080D0E2001881828080D0D4001881828080F0DE01040181828080F0C80120C000C000C0001500E07E8182808090D400C00081828080A0ED01C00081828080E0E600C0008182808090B1012081828080902A2081828080B0C4012081828080803A1881828080C0E4011881828080E095012081828080A09201188182808080FA001881828080B0E7012081828080A0291881828080C0351881828080F0E5002081828080C0F701188182808090DE011881828080B0B5012081828080808C011881828080E0D0001881828080A0AE01020181828080D01420C0000700608182808080C300C00081828080C0E3012081828080F0F8002081828080A0E8012081828080E08402208182808080A0022081828080F0C700020181828080D0FB00C002381B00508182808090EB001881828080C03410818280808091011081828080809A011081828080F09102208182808080C5002881828080D0CB010881828080B0F1010881828080E0E2010881828080B087011081828080B09E021881828080D0E4000881828080F0D4000881828080E0C3001881828080A0C7001881828080F0A8010881828080C0A9010881828080A09801188182808080CD001881828080F0CC010881828080C08802088182808090F6011881828080A0A002088182808090FD002081828080F03610818280809080011081828080D0A601020181828080F0C201182804006081828080E0C1000881828080E0C5012081828080D0FE000881828080D0820202098182808090990110181828020981828080E02270580828020181828080C0CC00202804006081828080E038088182808090B8012081828080C0F6000881828080C0F501020981828080F0A50108181828020981828080D0C20170580828030181828080D08A022028280600B87F81828080E02E0881828080A0AC012081828080F0E700088182808080E8012081828080A0CE000881828080F0D401030981828080C0171018C000D0000858030981828080909B02405828D0000858020981828080C0860158580828020B0881828080F0DA01582804003081828080F09F02F00081828080D0CF00F00081828080A0DE00C00281828080B09502020181828080C0910218B001990100E07E81828080B0FA01C00081828080801BC02481888080801BC85B81828080F09A022081828080909A021881828080D0CD00802281888080E08E010881888080B0B9010881888080E08D011081888080A0FE000881888080D084020881888080D0C401088188808090C6000881888080E0F5010881888080F012088188808090A4010881888080E0C0010881888080808D020881888080E0250881888080C0F40008818880809029088188808090A001088188808080BC010881888080D0121081888080F0860110818880809093021081888080C0D900088188808090F0010881888080B03F0881888080D0DA000881888080D0D8000881888080D095010881888080F0FB010881888080B0D4001881888080D08B010881888080A095010881888080D0190881888080C0040881888080E08502108188808080CF001081888080D0A102088188808090EF010881888080E09E010881888080E0260881888080B0AF010881888080B0F8010881888080A0E4000881888080D09401088188808080B5010881888080809F010881888080B09501088188808090CF00088188808090A601088188808080C70020818880808097020881888080F0C5011881888080C09F020881888080C0CA00088188808090ED001881888080F0910108818880809086020881888080D099010881888080E0A101088188808080A5010881888080A0D3010881888080A0CA010881888080D081020881888080E08D020881888080D0BF010881888080A02F088188808080CB000881888080D0FD00108188808090140881888080E091020881888080E083020881888080908F010881888080D0C1001081888080F00908818880809092010881888080B0ED000881888080D0DD000881888080A03F1081888080A08C020881888080B083020881888080C0D2010881888080E0E4010881888080D0B1011081888080B03C088188808080E800188188808090CA001081888080D0A201088188808080F7000881888080C0C0010881888080E00A0881888080B0E2010881888080A0EC000881888080D096010881888080C0EF01088188808080D9010881888080F08D010881888080D00B0881888080D0F8010881888080C0F50008818880809087020881888080B0201081888080B01A0881888080C0DF000881888080D0380881888080F0CE00088188808080B7010881888080C086020881888080B0E9010881888080E0B6010881888080A0AB010881888080F0DC000881888080A099020881888080E098020881888080A0F0010881888080A08F010881888080D0FC01088188808090210881888080F09801088188808080A2010881888080B0A9010881888080F0E0010881888080F00D1881888080A0E901088188808080A7010881888080F095010881888080A0B701108188808090E1010881888080B098010881888080D093010881888080E00F0881888080E0C5001081888080E0180881888080D0CE010881888080E080020881888080E0E701088188808090C101088188808090F0000881888080F0C6000881888080A0F6000881888080B0D0000881888080A0B6010881888080E092010881888080A0D5010881888080B0AE010881888080F02B0881888080C08B011881888080902D1081888080B0EE00388182808080D001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000".toCharArray());
        AndroidRelocationIterator iterator = new AndroidRelocationIterator(ElfFile.CLASS_64, null, data, true);
        for (; iterator.hasNext(); ) {
            ElfRelocation relocation = iterator.next().getValue();
            int type = relocation.type();
            switch (type) {
                case ARMEmulator.R_AARCH64_ABS64:
                case ARMEmulator.R_AARCH64_COPY:
                case ARMEmulator.R_AARCH64_GLOB_DAT:
                case ARMEmulator.R_AARCH64_JUMP_SLOT:
                case ARMEmulator.R_AARCH64_RELATIVE:
                case ARMEmulator.R_AARCH64_TLS_TPREL64:
                case ARMEmulator.R_AARCH64_TLS_DTPREL32:
                case ARMEmulator.R_AARCH64_IRELATIVE:
                case ARMEmulator.R_AARCH64_ABS32:
                case ARMEmulator.R_AARCH64_ABS16:
                case ARMEmulator.R_AARCH64_PREL64:
                case ARMEmulator.R_AARCH64_PREL32:
                case ARMEmulator.R_AARCH64_PREL16:
                    break;
                default:
                    log.debug("type=" + type + ", offset=0x" + Long.toHexString(relocation.offset()) + ", addend=0x" + Long.toHexString(relocation.addend()) + ", symbol=" + relocation.sym());
                    break;
            }
        }
    }

    public void test32() throws Exception {
        byte[] data = Hex.decodeHex("8C1188E822FF000308170E0304173001170C04040404040404040404040404040404E0010404041004040404E006040404041804040404180404040418040404040404010004171401170C04040404040404180404040404040418040404010004170401170C040404010004171901170C04040404F003041C0804100804AC0608041008040808041C0404030117100C0802011704100D01171804080C08041C0404100C0804F300011710180408D000043C043C0430043004D00004D00004081C0404040404040C0404040404040C04081C0404040404040C0404040404040C0414041404140414043404340434043404340434043404340418041804180418041C041C041C04D8010404D008DC003C3C3C3C3C3C3C3C3C3C34880A082C0C083CE4060C0802011704100100081702011704080301170804040C01170C0804049003C404040488200404040900A45A951CF0029524B87D952CE001959C0108959E01E868829802FC17959C02F00195A002B4BF7F82A602020182A802881ACC170300D40C95B20290B57F82BA02FC2E82BC02020182C002DC0D200500B46782C802D06982CA02D42082CC02A00482CE02CC5882D002020182D202EC0FC4010300B81582D802B87282DA02A06882DE02020182E602E816A0060200EC6182EE02C02882F002030182F402D00D20040200AC0B95F402DC5082F6020201828003F879D41B0301828203A04B14140300A8C90095820330958403AC628286030201828A03D86C940D0800D80D829003C817959803C00095A003D44F82A203AC2A82AC03D00895AC03B85182B203EC7482C403070182C803BC6C0C143CF00628280500A4C00095C803E46F82CA03907982CC03D00582D4038C5682DA03030182DC0394028C07CC000100F80782DE03040182E0039005A006A001F8002A0182E203AC5410181018101810181018101810181018101810181018101810181018101810181018101810181018100100E41882E803020182EA03A806CC170100807382F003020182FC039475CC170B00CC41828004EC30828404B470828804BC2B958C04F440829004B43C9594049C4182A404A40382A6049C2382AC04887282B004F40B82B604020182B804BC11040A00D46082BE04DC0282C404D06982C804E01682D204900F82D804905982DC04B0C00095E004B85882E204C80C82E604884D82E804020182EA04E010D8070B00883495EE049CBD7F82F004B00382F204C07982F604C80182F804980582FE04F074828605D005828A05B82A828E05F409829405F8109596050401829A058858A006A001F8000300A477829E05801282A005AC0482A405030182B2058458280C0100F83895BE05020182C205C444040500BC3995C205D04F82CA05E02F95CE05B45082D0050482D205040182D605A077D403B02EB001010088BB7F82DA05050182DC05A00FD406C42FD8003006008C6A82DE05C46982E2050882E405E42782E805F46F82EA05CC7082EC05030182F005A87830B41D0600D41395F205D46682FA05A46782FC0508828206D81D828406E4788288060201828C06F061E4310300C472829406E0728296069805829A060401829C068061B406CC00EC290100D00082A006030182A406906534C017020182B406A460B41C0200A40782B606E06C82B806020182BA069874B01A1500F47182C606EC6F82C806DC0182CE06FC0E82D206A40F82D406984982D6060C82DA06D41682E206EC1C82E406947282E606F47782E806EC0882FA06EC1182FE06E85E828E07FC788290078829829407CC68829607FC22959807A474829C07C84B829E07A41282A007020182AC07F072E4310300F46E82AE07A80882B407907582BA07020182BE07AC61040700F43895BE07D45B82C207986782C807B43B95C807D44182CE07FC3E95CE07FC0295D207020182D607EC5ACC17020182DA07E867C0170100D06782E607020182EC07C46A8C0703008C77828008E029828208F4129584080201828608A85990030300CC0D828808DC16958A08C05D8290080201829608AC57E80C0200C026829A08EC4C82A608020182AE08801AA8010700A42D95B008FC4982B208C42D82B408E8BF7F82B608882F82BA08805082C008A82E82C208020182C4089871DC1B0600840282C608907682C808A07982CE08C01382D008C46082D208D06C82D408020182D808AC1790030100C40182DC08020182DE08D87D94180100C00082E408020182EA08B05E300300842C95F008FC0295FC08E0608280090401828209CC61F806CC00CC2B02009C0A958609C0009588090401828A09E457C0068C01F8000400AC12828E099053829209A820829409A80A8296090401829A09E8528404A02EC0010100886282A009020182A209B877E81B0900D86882A4096482A809D82A95B409A86582B609806982B809A83095BC09DC6582C209900782C409B81495C609020182CE09984EA801020182D8098C25140100885F82DA09020182DC09F87AC4010400A02382E009A86982E209841C82EA09ECBB7F82EC09040182EE09A029D000D000C0020900C80982F009B87582F209AC7482F609886C82F809C40082FA09BC3B95FA09A00295FC09F87E95FE09E00095800A020182820A8C4480070E00B80382840AA40682860AC02282880ACC5E828A0AE478828C0A04828E0AA01482900AD41C95940AE06482980AC00C829E0AFC7682A00ADC6682A20A0882A40A880F82AE0A020182B00A8472C4010400C81582B40AE46782B60A0882B80AA80682BC0A020182C40ADC039003030182C80AD467B004C0000600FC7382CA0A880582CE0AC03B95CE0AB07182D00A8C0F95D20ACC7082DA0A020182DC0AD47CC0000100800982DE0A050182E40A944FD406C42FD80030030182EE0AD049B406B82A0500A46D82F00A887282FC0AD87B82FE0AFC7182800BAC0D82820B040182840BB076D403B02EB0010500B46982860B8C04828C0BFC7A828E0B905682940BE07E82960B020182980BA024C0170500FC0D959A0BF4B67F829C0BB826829E0BD05D82A00B2882A40B020182A60B941FC01719009C6E82A80BD82195AA0BE8B87F82AC0B981382AE0BB06982B40BA00182B60BCCC70095BC0BC45782BE0BF01182C00BA84F82C20B2882C60B2882CC0BF81382CE0BC06A82D40BC80A82D60BBC3B95D60BA4BA7F82D80B8C2D82DA0BEC7E82DC0BC85182DE0BF80082E20B94CB0095E40BFCB77F82EA0B2882EC0BA4C70095F00BDC000182F40BCCB27F0C0C3C0C0C0C0CC400F0062828DC0034E000C8000C202020200C2020CC000CE0002430F003140CC402CC00CC00CC00CC00F010AC033C3C3CDC003C3C3C3C3C3C3C3C3C3C3C0C0C0C0C0C300C0C0C0C0C94033080010C94010C0C0C9C020C0C0C0C0CC000D000F0002020AC02C000C000B001C4001430300200D45B82F60BC82182FA0BC4000182840CE4542020C000C0003434D400D400F000F0001818181838383838383838381C1C1C1C20202020303030301420203434C400302828282820F000E000D000D0003C3C3C3CDC003C3C3C3C3C3C3C3C3C3CC40AC0000A0182880CEC5214C003142CF02D141488011402009456828C0CF42D958E0C020182920CE05EA40D0200A45782A00CDC3582AA0C030182AE0C80BF7F9C09D8001100D01682B20CCC6A82B40CCC3F95B40CB86582BA0CC40882C60CF85582C80C980C82CC0CE00682D20CB45E82D40CE42F82D60C845E82D80C983C95DC0C94BF7F82DE0CE43582E00C886582E60CB47B82EC0CDC0B82F20C040182F40CDC648404A02EC0011200C07782F60CE86382FC0CD81A82860DAC51828A0DA83F95960DC04682A80DF41682AA0D9C6A82B60DA40C82B80D906182C00D800182C20DE83D82C80DFC5F82CA0D880782D20DC82695D80DF44D82E20D8C2F95E60DEC0395EA0D020182EE0DE059CC170100A40B95F80D020182820EB848040100843895820E020182860EA85CCC170200F80D95900ED44182940E0601829A0E9819A407B4013CAC02E80A0200E071829E0EC80582A00E070182A40E8056CC00202020A402C03106008C7182A80EBC6E82AC0ED00482AE0EC01082B60EE46A82BA0E900A82BE0E040182C20EB47BC0068C01F8000100887182C60E030182C80EC0718C07CC00020182CA0E980FCC170200906382CC0E842C95D20E020182D80EBC55C0000300F47D82DE0EB81482E00E981595E20E030182E60EA444B406CC00020182E80EC811D0000300BC2395EC0EE44482EE0E983B95F40E040182820FD442A41AF015C4000800F45F82840FC86B82880FF474828C0FC021828E0FAC0682940FD41582960F9868829A0FE05A829C0F0701829E0FEC0AA0012C20EC05AC2DA005020182A20FE061CC170600A07882A40FC00482A60FA07B82B00F805C82B40FB03795B40FC05482BE0F020182C00FC4611C0100B03082C20F020182C40F9C0E1C020182CC0FB85EF41B0100806582D00F030182DA0FD87C30901D01008C6D82DC0F030182DE0FF069B406B82A0100884082E00F040182E20F9C24A006A001F8000100A01382E40F020182E60FD851E4310F00FC0695E80FB4B57F82EA0FE8C80095EA0FFC5182EE0FC03195F40FE04C828810A827828C10F8588292100482941078829810F41A829A10D46F829C10EC6E82A210B40682A4101082AA10020182B010D81BC0000100BC6382B810020182BA10887FDC1B0800C06582BC10A40582C410801082C810D86A82CA10F80F82CE10987082D010A47882D610B40F82D810020182DA10906F8C070100D80382EE10020182F2109027040200840B95FA10A8728286110201828811E0508C070200EC75828C11A02582901102018292119068A8010501829611F06E282C20200100F0148298110201829C11DC06D0000100F80882A211030182A611847534C0170300E46182A811EC7B82AC11D81782B611020182B811E47090030400880882BA11805182BC11D0CD0095C211D07D95C411020182C811945CD0000200881482CA11806382CC11030182D011D00634C0170100985582D211020182D411E410A0060200D82295E4110C95E611020182EA118856C000020182EC11F86BEC300100B87382F211030182F411B05C8C07CC000800FC3395F611D00195FC11E07D95FE118441828212A47E8286129C27828812B87D828E12CC6C8292120201829C12A80DC00B0100C40A829E12040182A212F065C0068C01F8000900BC7482A812DC2A95AA121895AE12BC6E82B012B87182B212F80B82B812DC0082BC12F01095C612940295D412030182D612ECB27FCC000C0400F8C80095D612E00195DC12AC6382DE12881F95E012080182E212DCB27F2034EC0A8C0198010C80320F00880995E212EC0095E412CC7182E612841295E81298B27F82EA12EC0D82EC12A43E95F412F85682F612E40E82FA12F87E828013A06F828413E817828613E808828A13F00D958C13EC7E9598130201829C13A0740C0100CC0C959C130401829E13FC41B406CC00EC29080182A013946AD401F800D401F0013CAC02FC090300BC0B95A4138C7682AA13B47982AC13020182B213906FD0000400F05D82B813C80182BC13D87882C413B00182C813020182CE13840EB4060300B87D82D013E07382D213F81882D413020182D813A802C41A0500DC6082DE13982B95EC13F04782EE13AC7E82F413F43B95F613020182FA138C50C4010100C06E8284140201828614F436040100A4678288141E01828E149C7FFC00E000D000D000C002B8050C1824300CD400C000D000C0003030A00120C000202020E00030303030200200D451829814BC7E829E14020182A6148C03D8070400EC1782A814E81895AE14E40295B014D86A82B414020182B814D066CC000300840D82BA14D42395BE14FC4A82CE14040182D214D40BA006A001F8000400C81E95D614FC6982DA14EC7782DE14941D95E014030182E214CC5B34C0170300C07382E414947C82EA14D07782F014020182F414901C0C0100980C95F414020182FA14AC6A300100841395FC140201828015C45CD00005008418828215BC09958415F84F828815A472828A15B829828C150201829015D070C0170500E471829615A41082A215D40B95A615B07482A815C05F82AA15070182C215B06B282C2020A402C0310700D47182C415EC1895C615906282D815A01582DA15B47182E415C80982F4158C0F95F615020182FA15AC5CD0000201828216F06F940D01009427958616030182881694438C07CC000200C819828A16E000828C160201828E169C60E4310700FC49829216AC24829816A86F829E16FC1882A016881095A416F85E82A616847C82AA16020182AC16B013200100FC5582B216020182B816F816F8170300BC5482C016B03795C016F46882C216020182C416F86FC0001C008C0E82CA16C81082CC16B06A82D216C47382D416A06B82D6169C3E95D816F47282DC16C47382E216807082E616EC0082E816C02B95EA16C47C95F216C45E82F416A07182F616EC3495F816D07C95FC16C86682FE16FC78828217F817828617F044828E17FC3A829017CC46829417E028829617E474829C17C45C82A017ACCA0095A217ACBC7F82A417A02882A817020182AA179061E43103009C7482AC17C84F82AE17FC2F82B217040182B6179058B406CC00EC290300804382B817E07E82BA17D00082C017030182C217F00C8007EC290600C46D82C417E85882C6172882CA17DCC40095CC17D4BA7F82CE17C87C82D417020182D6178421900306008C5D82D8172882DC172882E0172882E417E01982E817F80482EA17020182EC17D87A881C180182EE17B045A40DC00018EC042008A016DC00D80A88019001083030E800E800B80130303030BC02BC060100ACBE7F82F217020182F417801FC0000600E86082F617C07D82FA17F80082FE17900382821828828618B8C600958A180401828E18E444D403B02EB001010098059592180201829618C45A90030400B023959E18C40195A018F44E82A818941882AA18020182B618880E040100B87182B818020182BA18E80D140900A05F82C018C80A82C218B86382C4188C7E82C818A42482CC18A00882D418880282D618C07082D818982295DC18020182DE18B459CC170B00D47182E018885B82E218D83582E418EC5782E818C80982EA18D87682EC18883395EE18DC7482F018A05882F2187882F618688286190201828819907AA4320400D0089588198C4B828A19D401829419A47E8296190401829C19F8202020200A01829E19BC46E40C04040484311C08E805100800D85382A2191082A619C87082A819D8C20095B019B06382B219B87E82B419907582B619D87B82B819050182BE19AC08D006D4013CAC020100946682C019030182C6198C77B406CC000200F82882CC19806682D619020182D819B07830040182DC19E006C0068C01F8000100DC1282DE19040182E019F064C0068C01F800020182EC199876A0060300800482F619A47782F819D42795FA19040182FE19BC438404A02EC001040182841AD04AD406C42FD800020182881AD4BD7F100201828A1AA423CC170201828E1AE043100100D01C82901A020182921AF06310020182941AF80310020182961A18100100A02182981A0201829A1A805E100201829E1AB87C10020182A01AB817A801020182A21AB06810020182A61A1810020182AA1A18100100D82982AC1A020182AE1AC056100200C02282B01A882195B21A020182B41AD056B01B020182B61AE04810020182B81A1810020182BC1AB07D100100CCC70095BC1A040182BE1AE45BC0068C01F800020182C01AF45410010098CA0095C21A020182C41AE8B87F10020182C61A18100200B81B82C81AC80482CC1A150182D21AAC5B28282828282828282828282828282828282828280500CC2182D41A980182DA1AE41F95DC1AB8BF7F82E41AD40382EE1A020182F01AB41AD0000A00B478828C1BB80782921BFC7982941BA828959A1B88BE7F829E1BF40482A61BA82582AA1BE86E82B21BE07682B41BE41E82B61B080182B81B9C74C001F800D401AC023CF800C40A020182BA1B905ECC000200840282C01BD00182C61B030182C81B80708C07CC00040182D01BD479D403B02EB0010500B06C82E01BE40082E81B5882EE1BC40A82F01B9C6482F41B030182F61BE46F8C07CC000600B81782F81BDC6F82FA1BD41A82FC1BF053828A1CAC21828E1CAC0182921C020182941CD477D0000800F80C82961CFC73829C1C882495A21C0495A41CC45382A61CC07A82A81CE01B82AE1C8C1595BA1C0A0182BE1C844414F00314D400B82D1414980114040182C01CDC60C0068C01F8000600F81182C21CA06182C61C882182C81CCCBD7F82CA1C9CC90095CA1CC07482D01C020182D81CD869CC170200804E82DA1CA01482DE1C030182E01C9C68D400340900983F95E01CF44982E21CFC2782E41CEC0F95E61CB06482EA1C847182F01CAC0182F21CE80D82F41CD40082F81C020182FA1C905610020182FC1CB801100200A02E82FE1CE46982801D020182821DF4611004009CC70095821DDC6382841DC00B828A1DFC54828C1D0201828E1D8C7A10020182921DA822BC130100947E82961D0201829A1DC0550404009839959A1DC803959E1D9C6682A21DA80982A41D020182A61D8C7A300500E45982A81DEC3995AE1DBC5582B21DFC2795B41DF86582BE1D020182C21DCC6CC401020182D01D8407A0060100AC7182D41D020182E01D5CC4010200941682E61DE86C82E81D020182EA1DB470D8070700941382EC1D887382EE1DE07482F01DDC0B82F21DCC1B82F41DE07782FC1DB80182FE1D020182801ED473CC170200C87082821E6882841E020182881EE06BA8010300802F958C1EA00195901EB47E959C1E020182A21E8C5DD0000200E86F82A61EA42782B41E020182B61EA863C00002008C0B82BA1E8C5D82C41E040182C61E9019A006A001F8000200F85D82D21EB40882DA1E020182DC1EC813CC170500A46A82E21EF41F95EE1EC47782F21EF07682FA1E846A82FC1E040182841FB46F8404A02EC0010100E84A82881F0201828C1FCC02040200CC38958C1FD47182901F040182961FBC68A006A001F8001500A85682A01FC8C60095A21F3095A41FE8B77F82A61FD00082AA1F880482AE1FF01282B21FB86D82B41FC81482BA1FE86A82BC1FCC3E82C01FFCBD7F82C41F942D82C81FE86A82CA1FA46982CE1F2882D21FB8C60095D61FF0B97F82D81F2882DC1FD4C70095DE1FE4B67F82E41F020182E81FE422C0170C00844682EA1FC07D82EC1FF80082F01F900382F21F2882F61FC01B82F81FE807828220E476828A208013828C20E07C829620C409829C20D014959E20020182A0208458D00E0600906482A420C41882A820A81895AA20F44982AC204082B220DC6C82B420020182B820CC12E4310100B47482C220020182C420BC6BA0060D00882095CA204895D0205895DA208C7482DE20907682E220846B82E820CC7982EA20FC3495F020D87B95F420E05982F620942795F820FC5982FA20987082FE200301828021FC7BD007CC000100E033958221040182862190BF7FA0012C201101828E21801C20F000E000D000D0003C3C3C98013CB4013C3C3CF8003C240182922194602020208001C014E000D000D000C0028006F000202020302020203030C000303020C000202020E0003030303020B0020200C851829421C8188296210201829821EC7A90030100F418829C21020182A221CC67880D0300A05A82A421881982A821AC7A82B221050182BE219C6CD406C42FD800300100CC0395BE21030182C02180781414020182D2219066D0000300E46582D421903B95D821D45F82DA21060182DC21D861C40120209833A0050100D80595DC21020182DE21D845140400841582E021D05982E221ECC90095E421840395EE21020182F421B057A0060401828622C07AA006A001F8000300E074828A22D811828E22947D8292220201829422A073A0060300B8648296228817829C22F47282A222030182A422DC76C004C0000200B00A82AE22CC0182B022020182B222DC24D0000200840595B622CC7482B822020182BA22D06AC00A0500C47882C422980882C622AC1895CE2288BE7F82D42294C20095D422030182D622FC41B406CC000800CC7E82D822C40E82DA22846E82DE22E87A82E022B03D95E022986882EA22FC6E82EC226082F022020182F222F879A8010100E81882F422030182F622C05D14040800F83795F622AC7A82FA22804782FE22EC28828023EC7D828423E84C828823AC0C828C23903E958C230201828E23F04580070200F831959423AC6982A823020182AA238C71C0000500B46C82B0239C3B95B423FC6682BA23C81995BC23D47982CC23020182D023D462D0000200946082D223BC3C82DA23030182DE23F07C1404020182E223984F140500880E82E4238C1382EA23946782F223941A82F623A06582FE230201828024A80ED0000200CC57828224A4218290240701829824D8701414BC311414F0000D00E07A829A24845982A024907582A424940282A624981182A824A02995AC24947382B024F80482B2249C4882B424D83582B624F05F82BC24AC0582BE24DC5A82C424020182C8249412040400C07E82CA24D81582CC24B42695CE24D46382D224000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000".toCharArray());
        AndroidRelocationIterator iterator = new AndroidRelocationIterator(ElfFile.CLASS_32, null, data, false);
        for (; iterator.hasNext(); ) {
            ElfRelocation relocation = iterator.next().getValue();
            int type = relocation.type();
            switch (type) {
                case ARMEmulator.R_ARM_ABS32:
                case ARMEmulator.R_ARM_REL32:
                case ARMEmulator.R_ARM_GLOB_DAT:
                case ARMEmulator.R_ARM_JUMP_SLOT:
                case ARMEmulator.R_ARM_RELATIVE:
                case ARMEmulator.R_ARM_IRELATIVE:
                case ARMEmulator.R_ARM_COPY:
                    break;
                default:
                    log.debug("type=" + type + ", offset=0x" + Long.toHexString(relocation.offset()) + ", addend=0x" + Long.toHexString(relocation.addend()) + ", symbol=" + relocation.sym());
                    break;
            }
        }
    }

}
